home *** CD-ROM | disk | FTP | other *** search
- package symantec.itools.awt;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.LayoutManager;
- import java.awt.Panel;
-
- public class BorderPanel extends Panel implements AlignStyle, BevelStyle {
- protected static final int labelpadx = 10;
- protected static final int labelipadx = 4;
- protected Color borderColor;
- protected Color labelColor;
- protected int padtop;
- protected int padbottom;
- protected int padleft;
- protected int padright;
- protected int ixPad;
- protected int iyPadTop;
- protected int iyPadBottom;
- protected int style;
- protected String label;
- protected int labelAlignment;
- protected Insets internalInsets;
- protected Panel panel;
- Dimension oldSize;
-
- public BorderPanel() {
- this((String)null, 1, 2);
- }
-
- public BorderPanel(int var1) {
- this((String)null, 1, var1);
- }
-
- public BorderPanel(String var1) {
- this(var1, 1, 2);
- }
-
- public BorderPanel(String var1, int var2) {
- this(var1, var2, 2);
- }
-
- public BorderPanel(String var1, int var2, int var3) {
- this.oldSize = new Dimension();
- this.borderColor = Color.black;
- this.labelColor = Color.black;
- this.padleft = 6;
- this.padright = 6;
- this.padtop = 10;
- this.padbottom = 6;
- this.ixPad = 4;
- this.iyPadTop = 2;
- this.iyPadBottom = 7;
- this.label = var1 != null && var1.length() == 0 ? null : var1;
- this.labelAlignment = var2;
- this.internalInsets = new Insets(10, 10, 10, 10);
- this.style = var3;
- this.setLayout((LayoutManager)null);
- super.add(this.panel = new Panel());
- this.sizepanel(true);
- }
-
- public void setPaddingTop(int var1) {
- this.padtop = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getPaddingTop() {
- return this.padtop;
- }
-
- public void setPaddingBottom(int var1) {
- this.padbottom = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getPaddingBottom() {
- return this.padbottom;
- }
-
- public void setPaddingLeft(int var1) {
- this.padleft = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getPaddingLeft() {
- return this.padleft;
- }
-
- public void setPaddingRight(int var1) {
- this.padright = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getPaddingRight() {
- return this.padright;
- }
-
- public void setIPadTop(int var1) {
- this.iyPadTop = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public void setIPadBottom(int var1) {
- this.iyPadBottom = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getIPadTop() {
- return this.iyPadTop;
- }
-
- public void setIPadSides(int var1) {
- this.ixPad = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getIPadBottom() {
- return this.iyPadBottom;
- }
-
- public void setPadding(int var1, int var2, int var3, int var4) {
- this.padtop = var1;
- this.padbottom = var2;
- this.padleft = var3;
- this.padright = var4;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getIPadSides() {
- return this.ixPad;
- }
-
- public void setLabel(String var1) {
- this.label = var1 != null && var1.length() == 0 ? null : var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public String getLabel() {
- return this.label;
- }
-
- public void setBorderColor(Color var1, boolean var2) {
- this.borderColor = var1;
- if (var2) {
- this.labelColor = var1;
- }
-
- ((Component)this).invalidate();
- }
-
- public void setBorderColor(Color var1) {
- this.setBorderColor(var1, false);
- }
-
- public Color getBorderColor() {
- return this.borderColor;
- }
-
- public void setAlignStyle(int var1) {
- this.labelAlignment = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public int getAlignStyle() {
- return this.labelAlignment;
- }
-
- public void setLabelColor(Color var1) {
- this.labelColor = var1;
- ((Component)this).invalidate();
- }
-
- public Color getLabelColor() {
- return this.labelColor;
- }
-
- public void setBevelStyle(int var1) {
- this.style = var1;
- ((Component)this).invalidate();
- }
-
- public int getBevelStyle() {
- return this.style;
- }
-
- public void setInternalInsets(Insets var1) {
- this.internalInsets = var1;
- this.sizepanel(true);
- ((Component)this).invalidate();
- }
-
- public Insets getInternalInsets() {
- return this.internalInsets;
- }
-
- public void layout() {
- this.sizepanel(false);
- this.panel.layout();
- }
-
- public Dimension minimumSize() {
- return this.preferredSize();
- }
-
- public Dimension preferredSize() {
- Dimension var1 = this.panel.preferredSize();
- var1.width = Math.max(var1.width, this.getLabelWidthMargin());
- var1.width += this.padleft + this.padright + this.ixPad * 2 + 1;
- var1.height += this.getLabelTopMargin() + this.padbottom + this.iyPadTop + this.iyPadBottom + 1;
- return var1;
- }
-
- public void setLayout(LayoutManager var1) {
- if (this.panel != null) {
- this.panel.setLayout(var1);
- }
-
- }
-
- public LayoutManager getLayout() {
- return this.panel.getLayout();
- }
-
- public Component add(Component var1) {
- return this.panel.add(var1);
- }
-
- public Component add(String var1, Component var2) {
- return this.panel.add(var1, var2);
- }
-
- public Component add(Component var1, int var2) {
- return var1 == this.panel ? super.add(var1, var2) : this.panel.add(var1, var2);
- }
-
- public void remove(Component var1) {
- this.panel.remove(var1);
- }
-
- public void removeAll() {
- this.panel.removeAll();
- }
-
- public void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- this.sizepanel(false);
- }
-
- public void update(Graphics var1) {
- Dimension var2 = ((Component)this).size();
- Insets var3 = this.insets();
- var1.setColor(((Component)this).getBackground());
- if (var3.left > 0) {
- var1.fillRect(0, 0, var3.left, var2.height);
- }
-
- if (var3.top > 0) {
- var1.fillRect(0, 0, var2.width, var3.top);
- }
-
- if (var3.bottom > 0) {
- var1.fillRect(0, var2.height - var3.bottom, var2.width, var3.bottom);
- }
-
- if (var3.right > 0) {
- var1.fillRect(var2.width - var3.right, 0, var3.right, var2.height);
- }
-
- this.paint(var1);
- this.panel.repaint();
- }
-
- public int countComponents() {
- return this.panel.countComponents();
- }
-
- public Component getComponent(int var1) {
- return this.panel.getComponent(var1);
- }
-
- public Component[] getComponents() {
- return this.panel.getComponents();
- }
-
- public Insets insets() {
- int var1 = this.getLabelTopMargin();
- Insets var2 = this.getInternalInsets();
- return new Insets(var1 + var2.top, var2.left, var2.bottom, var2.right);
- }
-
- void sizepanel(boolean var1) {
- Dimension var2 = ((Component)this).size();
- if (var1 || this.oldSize.width != var2.width || this.oldSize.height != var2.height) {
- this.oldSize = ((Component)this).size();
- this.panel.reshape(this.padleft + this.ixPad, this.getLabelTopMargin() + this.iyPadTop, this.oldSize.width - this.padright - this.padleft - this.ixPad * 2 - 1, this.oldSize.height - this.padbottom - this.getLabelTopMargin() - this.iyPadBottom - this.iyPadTop - 1);
- }
-
- }
-
- public void paint(Graphics var1) {
- this.sizepanel(false);
- var1.setColor(((Component)this).getBackground());
- this.draw(var1);
- }
-
- void draw(Graphics var1) {
- Dimension var2 = ((Component)this).size();
- int var3 = this.padtop;
- FontMetrics var4 = ((Component)this).getFontMetrics(((Component)this).getFont());
- var1.clipRect(0, 0, var2.width, var2.height);
- if (this.label != null && var4 != null) {
- var3 = (var4.getAscent() + var4.getDescent() + this.padtop) / 2;
- }
-
- int var5 = this.padleft;
- int var7 = var2.width - this.padleft - this.padright - 1;
- int var8 = var2.height - 1 - var3 - this.padbottom;
- this.drawBorder(var1, var5, var3, var7, var8);
- this.drawLabel(var1, var4);
- }
-
- void drawBorder(Graphics var1, int var2, int var3, int var4, int var5) {
- switch (this.style) {
- case 0:
- var1.setColor(Color.gray);
- var1.drawLine(var2, var3, var2 + var4, var3);
- var1.drawLine(var2, var3, var2, var3 + var5);
- var1.setColor(Color.white);
- var1.drawLine(var2, var3 + var5, var2 + var4, var3 + var5);
- var1.drawLine(var2 + var4, var3, var2 + var4, var3 + var5);
- return;
- case 1:
- var1.setColor(Color.white);
- var1.drawLine(var2, var3, var2 + var4, var3);
- var1.drawLine(var2, var3, var2, var3 + var5);
- var1.setColor(Color.gray);
- var1.drawLine(var2, var3 + var5, var2 + var4, var3 + var5);
- var1.drawLine(var2 + var4, var3, var2 + var4, var3 + var5);
- return;
- case 2:
- var1.setColor(this.borderColor);
- var1.drawRect(var2, var3, var4, var5);
- return;
- default:
- var1.setColor(this.borderColor);
- var1.drawRect(var2, var3, var4, var5);
- case 3:
- }
- }
-
- void drawLabel(Graphics var1, FontMetrics var2) {
- if (this.label != null && var2 != null) {
- int var3 = 10;
- Dimension var4 = ((Component)this).size();
- if (((Component)this).getFont().getSize() > var3) {
- var3 += ((Component)this).getFont().getSize() / 2;
- }
-
- int var5 = var2.stringWidth(this.label);
- int var6 = var2.getAscent();
- int var7 = var2.getDescent();
- int var8;
- switch (this.labelAlignment) {
- case 0:
- default:
- var8 = var3 + 7;
- break;
- case 1:
- var8 = (var4.width - var5) / 2;
- break;
- case 2:
- var8 = var4.width - var3 - (var5 + 7);
- }
-
- int var10000 = var6 + this.padtop;
- int var10 = var6 + var7 + this.padtop;
- int var9 = (var3 - var10) / 2 + this.padtop + var6;
- var1.setColor(((Component)this).getBackground());
- var1.fillRect(var8 - 2, 0, var5 + 4, var3);
- var1.setColor(this.labelColor);
- var1.drawString(this.label, var8, var9 - 1);
- }
-
- }
-
- protected int getLabelTopMargin() {
- if (this.label == null) {
- return this.padtop;
- } else {
- int var1 = this.padtop;
- Font var2 = ((Component)this).getFont();
- if (var2 != null) {
- FontMetrics var3 = ((Component)this).getFontMetrics(var2);
- var1 = var3.getAscent() + var3.getDescent() + this.padtop;
- }
-
- return var1;
- }
- }
-
- int getLabelWidthMargin() {
- if (this.label == null) {
- return 0;
- } else {
- int var1 = 2 + this.internalInsets.left + this.internalInsets.right;
- Font var2 = ((Component)this).getFont();
- if (var2 != null) {
- FontMetrics var3 = ((Component)this).getFontMetrics(var2);
- var1 = Math.max(var1, 2 + var3.stringWidth(this.label) + 10 + 4);
- }
-
- return var1;
- }
- }
-
- public void setBackground(Color var1) {
- super.setBackground(var1);
- this.panel.setBackground(var1);
- }
- }
-